<?php
/**
 * 誕生日クラスモジュール
 */
require_once __DIR__ . '/Matter.php';

/**
 * 誕生日クラス
 */
class Birthday extends Matter
{
	/*** 年 */
	protected $_year;
	/** 月 */
	protected $_month;
	/** 日 */
	protected $_day;
	/** 妥当判定日付 */
	protected $_validDate = FALSE;

	/**
	 * コンストラクタ
	 * @param $myExce 例外処理オブジェクト（設定しない場合NULL)
	 * @param unknown $yyyymmdd 生年月日
	 */
	public function __construct($date, $month='', $day='')
	{
		$this->_year = substr($date, 0, strlen('yyyy'));
		$this->_month = substr($date, strlen('yyyy'), strlen('mm'));
		$this->_day = substr($date, strlen('yyyymm'), strlen('dd'));
		/***月パラメータに値が設定されている*/
		if ($month != '') {
			$this->_month = sprintf('%02d', $month);
		}
		/***日パラメータに値が設定されている */
		if ($day != '') {
			$this->_day = sprintf('%02d',$day);
		}
		/***妥当判定日付 */
		if (checkdate($this->_month, $this->_day, $this->_year)) {
			$this->_validDate = TRUE;
		} else {
			global $MATTER_EXCEPTION;
			throw new MyException($MATTER_EXCEPTION);
		}
	}

	/**
	 * 年齢取得
	 */
	public function getAge()
	{
		$now = date('Ymd');
		$birthday = $this->_year . $this->_month . $this->_day;
		return floor(($now-$birthday)/10000);
	}
}